package leetcode_jz_offer.day13_array_string;

/**
 * 输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数在数组的前半部分，所有偶数在数组的后半部分。
 **/
public class Num21_奇数位于偶数之前 {
    public  int[] exchange(int[] nums) {
        //双指针i,j，i指向最前面，j指向最后面，i找偶数，j找奇数，找到交换即可
        int i=0;
        int j=nums.length-1;
        while(i<j){
            while((i<j)&&(nums[i]&1)!=0){//奇数
                i++;
            }
            while((i<j)&&(nums[j]&1)==0){
                j--;
            }
            if(i<j){
                swap(nums,i,j);
            }


        }
        return nums;
    }

    private  void swap(int[] nums, int i, int j) {
        int t=nums[i];
        nums[i]=nums[j];
        nums[j]=t;
    }

//    public static void main(String[] args) {
//     int[] arr={1,2,3,4};
//     arr=exchange(arr);
//
//        System.out.println(Arrays.toString(arr));
//    }
}
